package cn.iocoder.yudao.position.vo;

import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 职位-信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PositionRespVO {

    @Schema(description = "职位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15678")
    @ExcelProperty("职位ID")
    private Long id;

    @Schema(description = "公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15823")
    @ExcelProperty("公司ID")
    private Long tenantId;
    /**
     * 职位id
     */
    private Integer positionCategoryId;

    /**
     * 职位名称
     */
    private String positionCategoryName;
    @Schema(description = "职位名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("职位名称")
    private String title;

    @Schema(description = "职位编码")
    @ExcelProperty("职位编码")
    private String jobCode;

    @Schema(description = "学历要求(degree_dict字典值)")
    @ExcelProperty("学历要求(degree_dict字典值)")
    private Long educationDictCode;

    @Schema(description = "学历要求名称")
    @ExcelProperty("学历要求名称")
    private String educationDictLabel;

    @Schema(description = "薪资待遇(salary_range字典值)")
    @ExcelProperty("薪资待遇(salary_range字典值)")
    private Long salaryDictCode;

    @Schema(description = "薪资待遇名称")
    @ExcelProperty("薪资待遇名称")
    private String salaryDictLabel;

    @Schema(description = "性别要求(gender_requirement字典值)")
    @ExcelProperty("性别要求(gender_requirement字典值)")
    private Long genderDictCode;

    @Schema(description = "性别要求名称")
    @ExcelProperty("性别要求名称")
    private String genderDictLabel;

    @Schema(description = "工作经验(work_experience字典值)")
    @ExcelProperty("工作经验(work_experience字典值)")
    private Long experienceDictCode;

    @Schema(description = "工作经验名称")
    @ExcelProperty("工作经验名称")
    private String experienceDictLabel;

    @Schema(description = "公司性质(company_type字典值)")
    @ExcelProperty("公司性质(company_type字典值)")
    private Long companyTypeDictCode;

    @Schema(description = "公司性质名称")
    @ExcelProperty("公司性质名称")
    private String companyTypeDictLabel;

    @Schema(description = "公司规模(company_size字典值)")
    @ExcelProperty("公司规模(company_size字典值)")
    private Long companySizeDictCode;

    @Schema(description = "公司规模名称")
    @ExcelProperty("公司规模名称")
    private String companySizeDictLabel;

    @Schema(description = "福利待遇(benefits字典值、多个逗号拼接)")
    @ExcelProperty("福利待遇(benefits字典值、多个逗号拼接)")
    private String benefitsDictCode;

    @Schema(description = "福利待遇名称")
    @ExcelProperty("福利待遇名称")
    private String benefitsDictLabel;

    @Schema(description = "年龄要求(age_requirement字典值)")
    @ExcelProperty("年龄要求(age_requirement字典值)")
    private Long ageDictCode;

    @Schema(description = "年龄要求名称")
    @ExcelProperty("年龄要求名称")
    private String ageDictLabel;

    @Schema(description = "到岗时间(onboard_time字典值)")
    @ExcelProperty("到岗时间(onboard_time字典值)")
    private Long onboardDictCode;

    @Schema(description = "到岗时间名称")
    @ExcelProperty("到岗时间名称")
    private String onboardDictLabel;

    @Schema(description = "婚况要求(marital_status字典值)")
    @ExcelProperty("婚况要求(marital_status字典值)")
    private Long maritalDictCode;

    @Schema(description = "婚况要求名称")
    @ExcelProperty("婚况要求名称")
    private String maritalDictLabel;

    @Schema(description = "语言要求(language_requirement字典值)")
    @ExcelProperty("语言要求(language_requirement字典值)")
    private Long languageDictCode;

    @Schema(description = "语言要求名称")
    @ExcelProperty("语言要求名称")
    private String languageDictLabel;

    @Schema(description = "是否应届生(fresh_graduate字典值)")
    @ExcelProperty("是否应届生(fresh_graduate字典值)")
    private Long freshGraduateDictCode;

    @Schema(description = "是否应届生名称")
    @ExcelProperty("是否应届生名称")
    private String freshGraduateDictLabel;

    @Schema(description = "招聘人数")
    @ExcelProperty("招聘人数")
    private Integer recruitNumber;

    @Schema(description = "有效期至(拓展)")
    @ExcelProperty("有效期至(拓展)")
    private LocalDate validDate;

    @Schema(description = "是否最新(0否 1是)")
    @ExcelProperty("是否最新(0否 1是)")
    private String isLatest;

    @Schema(description = "是否急聘(0否 1是)")
    @ExcelProperty("是否急聘(0否 1是)")
    private String isUrgent;

    @Schema(description = "是否推荐(0否 1是)(拓展)")
    @ExcelProperty("是否推荐(0否 1是)(拓展)")
    private String isRecommend;

    @Schema(description = "是否热门(0否 1是)(拓展)")
    @ExcelProperty("是否热门(0否 1是)(拓展)")
    private String isHot;

    @Schema(description = "浏览量", example = "2028")
    @ExcelProperty("浏览量")
    private Integer viewCount;

    @Schema(description = "沟通数", example = "26855")
    @ExcelProperty("沟通数")
    private Integer communicationCount;

    @Schema(description = "沟通率(拓展)")
    @ExcelProperty("沟通率(拓展)")
    private BigDecimal communicationRate;

    @Schema(description = "投递量", example = "18584")
    @ExcelProperty("投递量")
    private Integer deliveryCount;

    @Schema(description = "收藏数(拓展)", example = "25438")
    @ExcelProperty("收藏数(拓展)")
    private Integer favoriteCount;

    @Schema(description = "职位职责", example = "随便")
    @ExcelProperty("职位职责")
    private String jobDescription;

    @Schema(description = "任职要求")
    @ExcelProperty("任职要求")
    private String jobRequirement;

    @Schema(description = "职位关键词(拓展)")
    @ExcelProperty("职位关键词(拓展)")
    private String jobKeywords;

    @Schema(description = "联系人(拓展)", example = "王五")
    @ExcelProperty("联系人(拓展)")
    private String contactName;

    @Schema(description = "联系人职位(拓展)")
    @ExcelProperty("联系人职位(拓展)")
    private String contactPosition;

    @Schema(description = "联系电话(拓展)")
    @ExcelProperty("联系电话(拓展)")
    private String contactPhone;

    @Schema(description = "联系邮箱(拓展)")
    @ExcelProperty("联系邮箱(拓展)")
    private String contactEmail;

    @Schema(description = "工作省份编码")
    @ExcelProperty("工作省份编码")
    private String workProvinceCode;

    @Schema(description = "工作省份名称", example = "李四")
    @ExcelProperty("工作省份名称")
    private String workProvinceName;

    @Schema(description = "工作城市编码")
    @ExcelProperty("工作城市编码")
    private String workCityCode;

    @Schema(description = "工作城市名称", example = "李四")
    @ExcelProperty("工作城市名称")
    private String workCityName;

    @Schema(description = "工作区县编码")
    @ExcelProperty("工作区县编码")
    private String workDistrictCode;

    @Schema(description = "工作区县名称", example = "赵六")
    @ExcelProperty("工作区县名称")
    private String workDistrictName;

    @Schema(description = "工作详细地址")
    @ExcelProperty("工作详细地址")
    private String workAddress;

    @Schema(description = "经度")
    @ExcelProperty("经度")
    private BigDecimal longitude;

    @Schema(description = "纬度")
    @ExcelProperty("纬度")
    private BigDecimal latitude;

    @Schema(description = "状态（0正常 1停用）", example = "2")
    @ExcelProperty("状态（0正常 1停用）")
    private String status;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "备注", example = "你说的对")
    @ExcelProperty("备注")
    private String remark;



    @TableField(exist = false)
    private TenantDO tenantDO;

    @TableField(exist = false)
    private AdminUserDO adminUserDO;


}